HDL lipidome quantification

Analysis based on the targeted lipidomic results. File: mx733759_Agus_Lipids_Single-point quant_Submit_CS_08-14-23.xlsx. The values were presented in ng/mL.

CVs of pooled samples

The CVs of pooled samples for each lipid species were calculated using the following formula:

\[ CV_{lipid\ species} = SD_{lipid\ species}/Mean_{lipid\ species} * 100\% \]

We are less confident with the lipid species with a high CV. These lipid species will be excluded for further analysis.

hist(lipid$fdata$qc_cv, main = "The distribution of CVs")

sum(lipid$fdata$qc_cv>30)
[1] 13

We excluded lipid species with a CV > 30%. 17 features were excluded.

Noise based on blank samples

For some lipid species, the mean concentration in HDL samples was even lower than the mean of blank samples. We felt less confident with the results of these lipid species and excluded them from further analysis.

sum(lipid$fdata$sample_mean < lipid$fdata$blank_mean)
[1] 0

13 species were excluded.

lipid <- subset_features(lipid, lipid$fdata$qc_cv<30)

Lipid classes

The hierarchical relationship of lipid classes.

Lipid category

Pie chart

# edata
lipid.class <- summarize_feature(lipid, "Categories")
edata.prop <- apply(lipid.class$edata, 2, function(col){
        col/sum(col)*100
})

# pie chart
pies.class1 <- lapply(sampleNames(lipid), plotPie, edata.prop)
legend.class1 <- get_legend(pies.class1[[1]])
pies.class1 <- lapply(pies.class1, function(x)x+theme(legend.position = "none"))
plot_grid(plotlist = pies.class1, nrow = 3) 

Bar plot

# bar plot
plotBar(edata.prop)

PCA plot

edata.scaled <- scale(t(edata.prop), center = T)
res.pca <- PCA(edata.scaled, scale.unit = T, graph = FALSE)
# fviz_eig(res.pca, addlabels = TRUE)
fviz_pca_ind(res.pca,
             axes = c(1,2),
             repel = TRUE,
             title = NULL
) +
        theme_cynthia_bw() +
        theme(
                legend.position = "none"
        ) +
        labs(title = NULL)

Lipid main class

Pie chart

lipid.class2 <- summarize_feature(lipid, "Main.class")
edata.prop2 <- apply(lipid.class2$edata, 2, function(col){
        col/sum(col)*100
})

# pie chart
pies.class2 <- lapply(sampleNames(lipid), plotPie, edata.prop2)
legend.class2 <- get_legend(pies.class2[[1]])
pies.class2 <- lapply(pies.class2, function(x)x+theme(legend.position = "none"))
plot_grid(plotlist = pies.class2, nrow = 3)

Bar plot

# bar plot
plotBar(edata.prop2)

PCA plot

edata.scaled2 <- scale(t(edata.prop2), center = T)
res.pca <- PCA(edata.scaled2, scale.unit = T, graph = FALSE)
# fviz_eig(res.pca, addlabels = TRUE)
fviz_pca_ind(res.pca, 
             axes = c(1,2),
             repel = TRUE,
             title = NULL
) +
        theme_cynthia_bw() +
        theme(
                legend.position = "none"
        ) +
        labs(title = NULL)

Lipid subclass

Pie chart

lipid.class3 <- summarize_feature(lipid, "class")
edata.prop3 <- apply(lipid.class3$edata, 2, function(col){
        col/sum(col)*100
})

# pie chart
pies.class3 <- lapply(sampleNames(lipid), plotPie, edata.prop3)
legend.class3 <- get_legend(pies.class3[[1]]+theme(legend.position = "bottom"))
pies.class3 <- lapply(pies.class3, function(x)x+theme(legend.position = "none"))
plot_grid(plotlist = pies.class3, nrow = 3)

Bar plot

# bar plot
plotBar(edata.prop3)

PCA

edata.scaled3 <- scale(t(edata.prop3), center = T)
res.pca <- PCA(edata.scaled3, scale.unit = T, graph = FALSE)
# fviz_eig(res.pca, addlabels = TRUE)
fviz_pca_ind(res.pca, 
             axes = c(1,2),
             repel = TRUE,
             title = NULL
) +
        theme_cynthia_bw() +
        theme(
                legend.position = "none"
        ) +
        labs(title = NULL)